const int N=4e6+10;
bool primes[N]={0};
auto Init = []
{
    primes[1]=true;
    for(int i=2;i<=N/i;++i)
    {
        if(!primes[i])
        {
            for(int j=i*i;j<N;j+=i) primes[j]=true;
        }
    }
    return 0;
}();

class Solution {
public:

    int diagonalPrime(vector<vector<int>>& nums) {
        int ans=0,n=nums.size();
        for(int i=0;i<nums.size();++i)
        {
            if(!primes[nums[i][i]]) ans=max(ans,nums[i][i]);
            if(!primes[nums[i][n-i-1]]) ans=max(ans,nums[i][n-i-1]);
        }
        return ans;
    }
};